\begin{frame}{文档的物理结构}
  \begin{columns}
  \column{0.45\linewidth}
  {\tiny\ttfamily\raggedright\hrule\vskip3pt
  {\color{green!50!black} \%\ \%以后一行中的内容全部被注释}\\
  {\only<2>{\color{violet}}\only<3>{\color{red!50!black}}\cmd{documentclass}{\only<5>{\color{brown}}\ooarg*{zihao=-4,a4paper}}{\only<4>{\color{purple}}\marg*{ctexart}}}\\
  {\color{green!50!black}\%\%\%\ 导言区}\\
  {\cmd{usepackage}\marg*{zhlipsum}}\hspace{9em} {\color{green!50!black}\%\ 载入宏包}\\
  {\cmd{title}\marg*{我的第一篇\cmd{LaTeX}\{\} 文档}}\hspace{4em} {\color{green!50!black}\%\ 设置标题}\\
  {\only<2>{\color{violet}}\cmd{author}\marg*{雷人}}\hspace{13em} {\color{green!50!black}\%\ 设置作者}\\
  {\cmd{date}\marg*{\cmd{today}}}\hspace{13em} {\color{green!50!black}\%\ 设置时间}\\
  {\color{green!50!black}\%\%\%\ 正文区}\\
  {\cmd{begin}\marg*{document}}\\
  {\only<2>{\color{violet}}\cmd{maketitle}}\hspace{15em}{\color{green!50!black}\% 排版标题}\\
  {\cmd{begin}\marg*{abstract}}\hspace{12em}{\color{green!50!black}\% 摘要环境开始}\\
  没有 Hello world 的代码教程是不完整的。\\
  本文给出一个中文版的 Hello world。\\
  {\cmd{end}\marg*{abstract}}\hspace{13em}{\color{green!50!black}\% 摘要环境结束}\\
  {\cmd{section}\marg*{概述}}\hspace{13em}{\color{green!50!black}\% 开始一节}\\
  {Hello World {\only<2>{\color{violet}}\textbackslash\&} 你好，杜世界！}\\
  {\cmd{section}\marg*{基本理论}}\\              
  {\cmd{input}\marg*{basictheory.tex}}\hspace{8em} {\color{green!50!black}\% 从文件读另一节}\\
  {\cmd{section}\marg*{结论}}\hspace{13em}{\color{green!50!black}\% 开始另一节}\\
  {\cmd{input}\marg*{conclusion}}\\
  {\cmd{end}\marg*{document}}\hspace{13em}{\color{green!50!black}\% 文章结束}\\
  {以下内容和注释一样，不会被程序读入。}\\[3pt]
  \hrule}
  \column{0.55\linewidth}
  {\footnotesize\texttt{\%} 为注释符，一行内其后的内容不会被读入}
  \pause
  \begin{block}{命令（control sequence）}
    \begin{itemize}\scriptsize
      \item \texttt{\textbackslash} + 一连串字母字符（\alert{大小写敏感}）
      \item \texttt{\textbackslash} + 某一个非字母、数字字符
      \item \marg{必选参数} 和 \oarg{可选参数}
    \end{itemize}
  \end{block}
  \pause
  \begin{lcmdline}
    \cmd{documentclass}\oarg{选项}\marg{文档类}
  \end{lcmdline}
  \pause
  \begin{itemize}[<+->]\scriptsize
    \item {\sffamily\only<4>{\color{purple}} ctexart (article、report、book)}
    \item {\ttfamily\only<5>{\color{brown}} zihao、a4paper}
  \end{itemize}
  \end{columns}
\end{frame}

\begin{frame}{文档的物理结构}
  \begin{columns}
  \column{0.45\linewidth}
  {\tiny\ttfamily\raggedright\hrule\vskip3pt
  {\color{green!50!black} \%\ \%以后一行中的内容全部被注释}\\
  {\color{red!50!black}\cmd{documentclass}{\color{brown}\ooarg*{zihao=-4,a4paper}}{\color{purple}\marg*{ctexart}}}\\
  {\color{green!50!black}\%\%\%\ 导言区}\\
  {\only<3>{\color{pink!60!black}}\cmd{usepackage}\marg*{zhlipsum}}\hspace{9em} {\color{green!50!black}\%\ 载入宏包}\\
  {\only<3>{\color{pink!60!black}}\cmd{title}\marg*{我的第一篇\cmd{LaTeX}\{\} 文档}}\hspace{4em} {\color{green!50!black}\%\ 设置标题}\\
  {\only<3>{\color{pink!60!black}}\cmd{author}\marg*{雷人}}\hspace{13em} {\color{green!50!black}\%\ 设置作者}\\
  {\only<3>{\color{pink!60!black}}\cmd{date}\marg*{\cmd{today}}}\hspace{13em} {\color{green!50!black}\%\ 设置时间}\\
  {\color{green!50!black}\%\%\%\ 正文区}\\
  {\only<1>{\color{blue}}\only<2>{\color{orange!70!black}}\only<3>{\color{orange!70!black}}\only<4>{\color{orange!70!black}}\cmd{begin}\marg*{document}}\\
  {\only<3>{\color{teal!60!black}}\cmd{maketitle}}\hspace{15em}{\color{green!50!black}\% 排版标题}\\
  {\only<1>{\color{blue}}\only<3>{\color{teal!60!black}}\cmd{begin}\marg*{abstract}}\hspace{12em}{\color{green!50!black}\% 摘要环境开始}\\
  {\only<3>{\color{teal!60!black}}没有 Hello world 的代码教程是不完整的。}\\
  {\only<3>{\color{teal!60!black}}本文给出一个中文版的 Hello world。}\\
  {\only<1>{\color{blue}}\only<3>{\color{teal!60!black}}\cmd{end}\marg*{abstract}}\hspace{13em}{\color{green!50!black}\% 摘要环境结束}\\
  {\only<3>{\color{teal!60!black}}\cmd{section}\marg*{概述}}\hspace{13em}{\color{green!50!black}\% 开始一节}\\
  {\only<3>{\color{teal!60!black}}Hello World {\textbackslash\&} 你好，杜世界！}\\
  {\only<3>{\color{teal!60!black}}\cmd{section}\marg*{基本理论}}\\              
  {\only<3>{\color{teal!60!black}}\cmd{input}\marg*{basictheory.tex}}\hspace{8em} {\color{green!50!black}\% 从文件读另一节}\\
  {\only<3>{\color{teal!60!black}}\cmd{section}\marg*{结论}}\hspace{13em}{\color{green!50!black}\% 开始另一节}\\
  {\only<3>{\color{teal!60!black}}\cmd{input}\marg*{conclusion}}\\
  {\only<1>{\color{blue}}\only<2>{\color{orange!70!black}}\only<3>{\color{orange!70!black}}\only<4>{\color{orange!70!black}}\cmd{end}\marg*{document}}\hspace{13em}{\color{green!50!black}\% 文章结束}\\
  {\only<4>{\color{green!50!black}}以下内容和注释一样，不会被程序读入。}\\[3pt]
  \hrule}
  \column{0.55\linewidth}
  \begin{block}{环境（environment）}
    \begin{itemize}\scriptsize
      \item \cmd{begin}\marg{环境名} 与 \cmd{end}\marg{环境名}
      \item \marg{必选参数} 和 \oarg{可选参数}
      \item 只能嵌套不能交叉
    \end{itemize}
  \end{block}
  \pause
  \begin{lcmdline}
    \cmd{begin}\marg*{document}\\
    \hspace*{2em}\ldots\\
    \cmd{end}\marg*{document}
  \end{lcmdline}
  \pause
  \begin{itemize}[<+->]\scriptsize
    \item \textcolor{pink!60!black}{导言区（preamble）}和 \textcolor{teal!60!black}{正文区}
    \item \cmd{end}\marg*{document} 以后的部分相当于注释
  \end{itemize}
  \end{columns}
\end{frame}

\begin{frame}{文档的物理结构}
  \begin{columns}
  \column{0.45\linewidth}
  {\tiny\ttfamily\raggedright\hrule\vskip3pt
  {\color{green!50!black} \%\ \%以后一行中的内容全部被注释}\\
  {\color{red!50!black}\cmd{documentclass}{\color{brown}\ooarg*{zihao=-4,a4paper}}{\color{purple}\marg*{ctexart}}}\\
  {\color{green!50!black}\%\%\%\ 导言区}\\
  {\only<2>{\color{blue!80!black}}\only<3>{\color{blue!80!black}}\only<4>{\color{blue!80!black}}\cmd{usepackage}\marg*{zhlipsum}}\hspace{9em} {\color{green!50!black}\%\ 载入宏包}\\
  {\cmd{title}\marg*{我的第一篇\cmd{LaTeX}\{\} 文档}}\hspace{4em} {\color{green!50!black}\%\ 设置标题}\\
  {\cmd{author}\marg*{雷人}}\hspace{13em} {\color{green!50!black}\%\ 设置作者}\\
  {\cmd{date}\marg*{\cmd{today}}}\hspace{13em} {\color{green!50!black}\%\ 设置时间}\\
  {\color{green!50!black}\%\%\%\ 正文区}\\
  {\color{orange!70!black}\cmd{begin}\marg*{document}}\\
  {\cmd{maketitle}}\hspace{15em}{\color{green!50!black}\% 排版标题}\\
  {\cmd{begin}\marg*{abstract}}\hspace{12em}{\color{green!50!black}\% 摘要环境开始}\\
  {没有 Hello world 的代码教程是不完整的。}\\
  {本文给出一个中文版的 Hello world。}\\
  {\cmd{end}\marg*{abstract}}\hspace{13em}{\color{green!50!black}\% 摘要环境结束}\\
  {\cmd{section}\marg*{概述}}\hspace{13em}{\color{green!50!black}\% 开始一节}\\
  {Hello World {\textbackslash\&} 你好，杜世界！}\\
  {\cmd{section}\marg*{基本理论}}\\              
  {\cmd{input}\marg*{basictheory.tex}}\hspace{8em} {\color{green!50!black}\% 从文件读另一节}\\
  {\cmd{section}\marg*{结论}}\hspace{13em}{\color{green!50!black}\% 开始另一节}\\
  {\cmd{input}\marg*{conclusion}}\\
  {\color{orange!70!black}\cmd{end}\marg*{document}}\hspace{13em}{\color{green!50!black}\% 文章结束}\\
  {\color{green!50!black}以下内容和注释一样，不会被程序读入。}\\[3pt]
  \hrule}
  \column{0.55\linewidth}
  \begin{block}{宏包（package）}
    \begin{itemize}\scriptsize
      \item 增强\LaTeX{} 功能的一些扩展
    \end{itemize}
  \end{block}
  \pause
  \begin{lcmdline}
    \cmd{usepackage}\oarg{选项}\marg{宏包名称}
  \end{lcmdline}
  \pause
  \begin{itemize}[<+->]\scriptsize
    \item 只能在导言区加载
    \item \faWindows{} 系统内，事实上宏包名称大小写不敏感
  \end{itemize}
  \end{columns}
\end{frame}

\begin{frame}{文档的物理结构}
  \begin{columns}
  \column{0.45\linewidth}
  {\tiny\ttfamily\raggedright\hrule\vskip3pt
  {\color{green!50!black} \%\ \%以后一行中的内容全部被注释}\\
  {\color{red!50!black}\cmd{documentclass}{\color{brown}\ooarg*{zihao=-4,a4paper}}{\color{purple}\marg*{ctexart}}}\\
  {\color{green!50!black}\%\%\%\ 导言区}\\
  {\cmd{usepackage}\marg*{zhlipsum}}\hspace{9em} {\color{green!50!black}\%\ 载入宏包}\\
  {\cmd{title}\marg*{我的第一篇\cmd{LaTeX}\{\} 文档}}\hspace{4em} {\color{green!50!black}\%\ 设置标题}\\
  {\cmd{author}\marg*{雷人}}\hspace{13em} {\color{green!50!black}\%\ 设置作者}\\
  {\cmd{date}\marg*{\cmd{today}}}\hspace{13em} {\color{green!50!black}\%\ 设置时间}\\
  {\color{green!50!black}\%\%\%\ 正文区}\\
  {\color{orange!70!black}\cmd{begin}\marg*{document}}\\
  {\cmd{maketitle}}\hspace{15em}{\color{green!50!black}\% 排版标题}\\
  {\cmd{begin}\marg*{abstract}}\hspace{12em}{\color{green!50!black}\% 摘要环境开始}\\
  {没有 Hello world 的代码教程是不完整的。}\\
  {本文给出一个中文版的 Hello world。}\\
  {\cmd{end}\marg*{abstract}}\hspace{13em}{\color{green!50!black}\% 摘要环境结束}\\
  {\cmd{section}\marg*{概述}}\hspace{13em}{\color{green!50!black}\% 开始一节}\\
  {Hello World {\textbackslash\&} 你好，杜世界！}\\
  {\cmd{section}\marg*{基本理论}}\\              
  {\only<2>{\color{blue!80!black}}\only<3>{\color{blue!80!black}}\cmd{input}\marg*{basictheory.tex}}\hspace{8em} {\color{green!50!black}\% 从文件读另一节}\\
  {\cmd{section}\marg*{结论}}\hspace{13em}{\color{green!50!black}\% 开始另一节}\\
  {\only<2>{\color{blue!80!black}}\only<3>{\color{blue!80!black}}\cmd{input}\marg*{conclusion}}\\
  {\color{orange!70!black}\cmd{end}\marg*{document}}\hspace{13em}{\color{green!50!black}\% 文章结束}\\
  {\color{green!50!black}以下内容和注释一样，不会被程序读入。}\\[3pt]
  \hrule}
  \column{0.55\linewidth}
  大型文档通常不会全部写在一个文档内
  \pause
  \begin{lcmdline}
    \cmd{input}\marg{路径与文件名}\\
    \cmd{include}\marg{路径与文件名}
  \end{lcmdline}
  \pause
  \begin{itemize}\scriptsize
    \item 可以使用相对路径和绝对路径，路径分隔符使用 \texttt{/} 而不是 \texttt{\textbackslash}
    \item 可以读入任何纯文本文档
    \item 可以省略纯文本文档的扩展名 \fname{tex}
    \item 文件名中不要使用空格和 \texttt{.}
  \end{itemize}
  \end{columns}
\end{frame}

\begin{frame}{章节逻辑结构}
\begin{columns}
  \column{0.5\linewidth}
\begin{lcmdline}
  \cmd{part}\oarg{短标题}\marg{长标题}\\
  \cmd{chapter}\oarg{短标题}\marg{长标题}\\
  \cmd{section}\oarg{短标题}\marg{长标题}\\
  \cmd{subsection}\oarg{短标题}\marg{长标题}\\
  \cmd{subsubsection}\oarg{短标题}\marg{长标题}\\
  \cmd{paragraph}\oarg{短标题}\marg{长标题}\\
  \cmd{subparagraph}\oarg{短标题}\marg{长标题}
\end{lcmdline}
  \column{0.5\linewidth}
  \begin{itemize}\footnotesize
    \item \cmd{part} 有必要的时候才用 
    \item \cmd{chapter} 在 \textsf{article} 基础文档类中没定义 
    \item \oarg{短标题} 用于页眉页脚和目录，不设定则与\marg{长标题}一致
    \item 都有带 \texttt{*} 版本的命令，不编号，不放进目录
  \end{itemize}
\end{columns}
\end{frame}

\begin{frame}[fragile]{段落与换行}
  \begin{itemize}\footnotesize
    \item 西文之间无论多少连续的空白字符（\keys{space} / \keys{Tab}）都视作一个空格
	  \item 换行（\keys{\return}）也视作一个空格
	  \item 空行（连续两个\keys{\return}）视作段落结束
	  \item CJK 字符之间的所有连续空白字符都忽略
	  \item 中西文字符之间会自动插入可伸缩的弹性空格
	  \item 换行 \crcmd{} 只用于特殊排版结构，该用分段要用分段{\scriptsize（\crcmd{} 类似 Word 里 \keys{Shift+\return}）}
  \end{itemize}
\end{frame}

\begin{frame}[standout]
  入门结束\pause

  显然这是开玩笑
  
  不过对于纯文字的文档，到这里就足够用了
  
  科技文档还有很多内容……
\end{frame}

\begin{frame}{保留符号}
  \centering
  \includegraphics[width=\linewidth]{figures/part1/symbols1.pdf}\pause 

  \includegraphics[width=\linewidth]{figures/part1/symbols2.pdf}\pause

  \includegraphics[width=\linewidth]{figures/part1/symbols3.pdf}
\end{frame}

\begin{frame}{标点符号}
  \begin{itemize}\footnotesize
    \item 中文用全角符号直接输入
    \item 西文标点符号与中文符号有差异
    \item 写什么类型文档用什么符号
  \end{itemize}
  \includegraphics[width=\linewidth]{figures/part1/symbols4.pdf}
\end{frame}

\begin{frame}{其他符号}
  \includegraphics[width=\linewidth]{figures/part1/symbols5.pdf}
  \begin{itemize}\footnotesize
    \item 不需要任何宏包支持
    \item 以 \texttt{text} 开头的命令只能在\alert{文本模式}下使用，其余都可以在\alert{文本模式}和\alert{数学模式}下使用。
  \end{itemize}
\end{frame}

\begin{frame}{Dingbat 杂锦字符}
  \includegraphics[width=\linewidth]{figures/part1/symbols6.pdf}
\end{frame}

\begin{frame}{fontawesome 图标}
  \includegraphics[width=\linewidth]{figures/part1/fontawesomesymbols.pdf}
\end{frame}

\begin{frame}{列表环境——有序列表}
  \begin{columns}
  \column{0.4\linewidth}
  \begin{lcmdline}
    \cmd{begin}\marg*{enumrate}\oarg{选项}\\
    \hspace*{2em}\cmd{item}\oarg{选项} \ldots\\
    \cmd{end}\marg*{enumrate}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 最多嵌套 4 层
    \item 各级标签形式和缩进不同
    \item 可以通过 \Arg{选项} 改标签样式
  \end{itemize}
  \column{0.6\linewidth}
  \includegraphics[width=\linewidth]{figures/part1/enumerate.pdf}
  \end{columns}
\end{frame}

\begin{frame}{列表环境——无序列表}
  \begin{columns}
  \column{0.4\linewidth}
  \begin{lcmdline}
    \cmd{begin}\marg*{itemize}\oarg{选项}\\
    \hspace*{2em}\cmd{item}\oarg{选项} \ldots\\
    \cmd{end}\marg*{itemize}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 最多嵌套 4 层
    \item 各级标签形式和缩进不同
    \item 可以通过 \Arg{选项} 改标签样式
  \end{itemize}
  \column{0.6\linewidth}
  \includegraphics[width=\linewidth]{figures/part1/itemize.pdf}
  \end{columns}
\end{frame}

\begin{frame}{列表环境——解释列表}
  \begin{columns}
  \column{0.4\linewidth}
  \begin{lcmdline}
    \cmd{begin}\marg*{description}\oarg{选项}\\
    \hspace*{2em}\cmd{item}\oarg{解释名词} \ldots\\
    \cmd{end}\marg*{description}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item \Arg{选项} 用于控制样式
    \item \Arg{解释名词} 作为列表条目标签，一般是粗体
    \item 可以嵌套，但是一般很少嵌套
    \item 三种列表之间也可以相互嵌套，但最多只能嵌套 6 层
  \end{itemize}
  \column{0.6\linewidth}
  \includegraphics[width=\linewidth]{figures/part1/description.pdf}
  \end{columns}
\end{frame}

\begin{frame}{列表环境的样式}
  \begin{itemize}\footnotesize
    \item 通过 \textsf{enumitem} 宏包修改标签、缩进、段落间距等样式
    \item \textsf{enumitem} 宏包提供了带 \texttt{*} 环境，可以在一行内顺序排列比较短的条目。
  \end{itemize}
  \includegraphics[width=\linewidth]{figures/part1/enuminline.pdf}
\end{frame}

\begin{frame}[fragile]{数学公式}
  \begin{description}\footnotesize
    \item[行内公式] 一行文本中与文字混排的公式 
    \begin{itemize}\footnotesize
      \item 一对 \verb|$| 包裹
      \item \verb|\(|、\verb|\)| 包裹
    \end{itemize} 
    \item[独立公式] 几行文本之间，独占一行或几行的公式
    \begin{itemize}\footnotesize
      \item 一对 \verb|$$| 包裹
      \item \verb|\[|、\verb|\]| 包裹
      \item \textsf{displaymath}、\textsf{equation}、\textsf{equation*}、\textsf{multline}、\textsf{multline*}、\textsf{align}、\textsf{align*}、\textsf{gather}、\textsf{gather*}
    \end{itemize} 
  \end{description}
  \begin{block}{数学模式}
    \begin{itemize}\footnotesize
      \item 空格全部忽略
      \item 所有字母都是公式变量处理
      \item 公式不可有空行分段，换行公式使用特殊的环境
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}{数学符号}
\includegraphics[width=\linewidth]{figures/part1/mathsymbols.pdf}
\end{frame}

\begin{frame}{数学结构}
\includegraphics[width=\linewidth]{figures/part1/mathstruc.pdf}
\end{frame}

\begin{frame}{数学定界符}
\includegraphics[width=\linewidth]{figures/part1/mathdelimer.pdf}
\end{frame}

\begin{frame}{数学定界符}
\includegraphics[width=\linewidth]{figures/part1/mathmult.pdf}
\end{frame}

\begin{frame}{多行公式}
  \begin{itemize}\footnotesize
    \item 特殊环境，用 \crcmd 换行，用 \texttt{\&} 对齐 
    \begin{itemize}\scriptsize
      \item \textsf{multline}：首行左对齐，末行右对齐，其余居中对齐 
      \item \textsf{gather}：多个公式，一行一个公式，一个编号，全部居中对齐
      \item \textsf{align}： 多个公式，一行一个公式，一个编号，用 \texttt{\&} 控制对齐位置 
    \end{itemize}
    \item 不需要编号时用带 \texttt{*} 环境
    \item 一组公式共用一个编号时，使用 \textsf{gathered}、\textsf{aligned} 次环境
    \item 公式有子编号时，把公式放入 \textsf{subequations} 环境（环境本身不进入数学模式）
  \end{itemize}
\end{frame}

\begin{frame}{数学公式}
\includegraphics[width=\linewidth]{figures/part1/math.pdf}
\end{frame}

\begin{frame}{表格}
  实事求是地说，表格在 \LaTeX{} 中的实现不如 WYSIWYG 的软件方便，但即使是再复杂的表格也有实现的方法。
  \begin{lcmdline}
    \cmd{begin}\marg*{tabular}\marg{列模式}\\
     \ldots \& \ldots \& \ldots \& \crcmd\\
    \cmd{end}\marg*{tabular}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item \Arg{列模式}：\texttt{l}、\texttt{c}、\texttt{r}、\texttt{p}\marg{宽度}、\texttt{|}
    \item \cmd{hline} 全宽度横线
  \end{itemize}
\end{frame}

\begin{frame}[fragile]{表格}
\begin{columns}
\column{0.5\linewidth}
{\tiny\hrule
\begin{latexcode}
\begin{tabular}{|l|c|r|}
  \hline
  操作系统& 发行版& 编辑器\\
  \hline
  Windows & Mik\TeX & TeXMakerX \\
  \hline
  Unix/Linux & te\TeX & Kile \\
  \hline
  Mac OS & Mac\TeX & TeXShop \\
  \hline
  通用& \TeX Live & TeXworks \\
  \hline
\end{tabular}
\end{latexcode}
\hrule}
\column{0.5\linewidth}
\begin{tabular}{|l|c|r|}
  \hline
  操作系统& 发行版& 编辑器\\
  \hline
  Windows & Mik\TeX & TeXMakerX \\
  \hline
  Unix/Linux & te\TeX & Kile \\
  \hline
  Mac OS & Mac\TeX & TeXShop \\
  \hline
  通用& \TeX Live & TeXworks \\
  \hline
\end{tabular}
\end{columns}
\end{frame}

\begin{frame}[fragile]{表格——指定列宽}
  \begin{lcmdline}
    \cmd{usepackage}\marg*{tabularx}\\
    \cmd{begin}\marg*{tabularx}\marg{总宽}\marg{列模式}\\
    \ldots\\
    \cmd{end}\marg*{tabularx}
  \end{lcmdline}
  \begin{columns}
  \column{0.35\linewidth}
  {\tiny\hrule
  \begin{latexcode}
\begin{tabularx}{\linewidth}{|X|X|X|}
  \hline
  操作系统& 发行版& 编辑器\\
  \hline
  Windows & Mik\TeX & TeXMakerX \\
  \hline
  Unix/Linux & te\TeX & Kile \\
  \hline
  Mac OS & Mac\TeX & TeXShop \\
  \hline
  通用& \TeX Live & TeXworks \\
  \hline
\end{tabularx}
\end{latexcode}
\hrule}
  \column{0.65\linewidth}
  \begin{tabularx}{\linewidth}{|X|X|X|}
    \hline
    操作系统& 发行版& 编辑器\\
    \hline
    Windows & Mik\TeX & TeXMakerX \\
    \hline
    Unix/Linux & te\TeX & Kile \\
    \hline
    Mac OS & Mac\TeX & TeXShop \\
    \hline
    通用& \TeX Live & TeXworks \\
    \hline
  \end{tabularx}
  \end{columns}
\end{frame}

\begin{frame}[fragile]{表格——跨行跨列}
  \begin{lcmdline}
    \cmd{usepackage}\marg*{multirow}\\
    \cmd{multicolumn}\marg{合并列数}\marg{列模式}\marg{单元格内容}\\
    \cmd{multirow}\marg{合并行数}\marg{合并后段落宽度}\marg{单元格内容}
  \end{lcmdline}
  \begin{columns}
  \column{0.5\linewidth}
  {\tiny\hrule
  \begin{latexcode}
\begin{tabular}{|l|c|r|}
  \hline
  \multirow{2}*{操作系统}& \multicolumn{2}{c|}{常用工具}\\
  \cline{2-3}
  & 发行版 & 编辑器\\
  \hline
  Windows & Mik\TeX & TeXMakerX \\
  \hline
  Unix/Linux & te\TeX & Kile \\
  \hline
  Mac OS & Mac\TeX & TeXShop \\
  \hline
  通用& \TeX Live & TeXworks \\
  \hline
\end{tabular}
\end{latexcode}
\hrule}
  \column{0.5\linewidth}
  \begin{tabular}{|l|c|r|}
    \hline
    \multirow{2}*{操作系统}& \multicolumn{2}{c|}{常用工具}\\
    \cline{2-3}
    & 发行版 & 编辑器\\
    \hline
    Windows & Mik\TeX & TeXMakerX \\
    \hline
    Unix/Linux & te\TeX & Kile \\
    \hline
    Mac OS & Mac\TeX & TeXShop \\
    \hline
    通用& \TeX Live & TeXworks \\
    \hline
  \end{tabular}
  \end{columns}
\end{frame}

\begin{frame}{表格的其他应用}
  \begin{itemize}\footnotesize
    \item \textsf{booktabs} 常用的三线表
    \item \textsf{colortbl} 彩色表格
    \item \textsf{diagbox}  表头排斜线
    \item \textsf{longtable}、\textsf{supertabular} 跨页长表格
    \item \alert{\textsf{tabu}} 功能强大，多种设置 {\scriptsize （但是不推荐使用，宏包作者已经失联了，没人修复 \faBug{}，没人维护 \faCode{} ）}
    \item {\bfseries\sffamily tabularray} 排表格的后起之秀 {\scriptsize （暨南大学吕荐瑞老师的作品，基本再现了 \textsf{tabu} 的功能，推荐使用。）}
    \item 配合宏包 \textsf{csvsimple}、\textsf{pgfplotstable}、\textsf{datatool} 利用 \fname{.csv} 排版表格
  \end{itemize}
\end{frame}


\begin{frame}{插图}
  需要 \textsf{graphicx} 宏包
  \begin{lcmdline}
  \cmd{includegraphics}\oarg{选项}\marg{路径与文件名}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 支持文件格式：\fname{pdf}、\fname{jpg}、\fname{png}、\fname{eps}、\sout{\fname{bmp}}
    \item \fname{wmf}、\fname{emf} 可以通过自由软件 Inkscape \href{https://inkscape.org/}{\faLink} 转换成为 \fname{pdf}
    \item 选项：
    \begin{itemize}\scriptsize
      \item \texttt{width}、\texttt{height}（\texttt{totalheight}）相对或绝对宽度；
      \item \texttt{keepaspectratio} 保持宽高比；
      \item \texttt{scale} 缩放；
      \item \texttt{angle} 旋转；
      \item \texttt{page} 多页文件的页码；
    \end{itemize}
    \item \cmd{graphicspath}\marg*{\marg{路径1},...,\marg{路径n}} 可以指定默认图片搜索路径。
  \end{itemize}
\end{frame}

\begin{frame}{插图}
  需要 \textsf{svg} 宏包
  \begin{lcmdline}
    \cmd{includesvg}\oarg{选项}\marg{路径与文件名}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 支持文件格式：\fname{svg}
    \item 需要安装 Inkscape {\scriptsize （所以其实更推荐使用 Inkscape 直接转换成 \fname{pdf}）}
    \item \fname{wmf}、\fname{emf} 可以通过自由软件 Inkscape \href{https://inkscape.org/}{\faLink} 转换成为 \fname{svg}
    \item 详细用法可查看 \textsf{svg} 宏包的说明文档
  \end{itemize}
\end{frame}

\begin{frame}{插图——其他方式（绘图语言）}
  \begin{itemize}\footnotesize
    \item \MP：基于 \MF{} 演变而来，几何曲线构造有独到之处
    \item Asymptote：受 \MP{} 启发创立
    \begin{itemize}\scriptsize
      \item C 语言语法结构
      \item 继承了 \MP{} 曲线构造功能和 PostScript 语言的高质量输出
      \item 增强高精度数学计算和数据组织结构，包括了完整的三维功能
      \item 可以单独编译生成图片文件，也可以通过 \textsf{asymptote} 宏包嵌入在 \LaTeX{} 格式中直接编译
    \end{itemize}
    \item PSTricks: 利用 PostScript 语言计算和图形功能输出非常复杂的矢量图形
    \item PGF/Ti\textit{k}Z （Portable Graphics Format / Ti\textit{k}Z ist \emph{kein} Zeichenprogramm）
    \begin{itemize}\scriptsize
      \item Till Tantau 为了自己博士答辩制作幻灯片专门写的绘图包
      \item 功能接近 PSTricks，可移植性更好
      \item 语法与 \LaTeX{} 风格一致，手册超长（1321 页）
      \item 直接在 \LaTeX{} 文档中编译，也可以单独编译后插图
    \end{itemize}
    {\scriptsize（桥梁施工图设计总说明模板中的插图全部采用 Ti\textit{k}Z 绘制，包括图框）}
  \end{itemize}
\end{frame}


\begin{frame}{浮动体}
  \begin{block}{概念}
    \small 特殊的盒子（box），把其中的内容放在距代码出现位置不远的页面顶部、底部或单独一页。
  \end{block}
  \begin{block}{预设的类型}
    \small \texttt{figure} 环境和 \texttt{table} 环境。
  \end{block}
  \begin{block}{特点}
    \begin{itemize}\footnotesize
	  \item 提供良好的阅读体验（readability）
	  \item 不打断阅读者的阅读节奏（reading flow）
	  \item 使用交叉引用来引述。
	\end{itemize}
  \end{block}
\end{frame}

\begin{frame}{浮动体浮动规则}
  \begin{itemize}\footnotesize
    \item \texttt{figure} 和 \texttt{table} 环境的可选参数给出允许浮动的位置
    \begin{itemize}\scriptsize
      \item \texttt{h}：（here）就地排版
      \item \texttt{t}：（top）浮动到页面顶部
      \item \texttt{b}：（bottom）浮动到页面底部
      \item \texttt{p}：（page）单独的浮动页上
      \item 默认选项：\oarg*{tbp}
    \end{itemize}
    \item 优先级：\texttt{h}$\to$\texttt{t}$\to$\texttt{b}$\to$\texttt{p}
    \item \texttt{!} 可以忽略部分文本页的浮动体限制
  \end{itemize}
  \begin{block}{浮动体定理}
    “想要浮动体乖乖待在代码出现的位置”，\alert{这是病}，\alert{得治}。
  \end{block}
\end{frame}


\begin{frame}[fragile]{浮动体环境和内容没有必然联系}
  \begin{columns}
    \tiny
    \column{0.4\linewidth}
    \hrule\vskip3pt
    \begin{latexcode}
    \begin{figure}
      \heartpar{\zhlipsum*[1][name=xiangyu]}
      \caption{心形段落}
    \end{figure}
    \end{latexcode}
    \hrule\vskip3pt
    \begin{figure}
      \heartpar{\zhlipsum*[1][name=xiangyu]}
      \caption{心形段落}
    \end{figure}
    \column{0.6\linewidth}
    \begin{table}
      \caption{竖曲线要素表}
      \includegraphics[width=\linewidth]{figures/part1/sqx.pdf}
    \end{table}
    \hrule\vskip3pt
    \begin{latexcode}
      \begin{table}
        \caption{竖曲线要素表}
        \includegraphics[width=\linewidth]{figures/sqx.pdf}
      \end{table}
    \end{latexcode}
    \hrule\vskip3pt
  \end{columns}
\end{frame}

\begin{frame}{目录}
  \begin{lcmdline}
    \cmd{tableofcontents}\\
    \cmd{listoffigures}\\
    \cmd{listoftables}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 编译至少需要进行两遍
    \begin{enumerate}\scriptsize
      \item 编译文档，目录信息写入 \fname{toc}（\fname{lot}、\fname{lof}）临时文件
      \item 读入 \fname{toc}（\fname{lot}、\fname{lof}）临时文件，再次进行编译
    \end{enumerate}
    \item 推荐使用 \fname{latexmk}，自动监测编译过程中临时文件的变化，决定是否进行多次编译
\end{itemize}
\end{frame}

\begin{frame}{交叉引用}
  通过一个符号标签引用本文档中某个对象的编号、页码或者标题信息，不必知道这个对象具体在什么位置。
  \begin{itemize}\footnotesize
    \item \cmd{label}\marg{标签名} 给被引用对象加一个标签
    \begin{itemize}\scriptsize
      \item \Arg{标签名} 任意取名，不留空格，全文唯一。流行的方式是 \marg*{类型:缩写}
      \item 类型：\texttt{part}、\texttt{chp}、\texttt{sec}、\texttt{subsec}、\texttt{subsubsec}、\texttt{eq}、\texttt{fig}、\texttt{tab}、\texttt{fn}、\texttt{item}
    \end{itemize}
    \item 需要引用的位置用引用指令引用对象标签
    \begin{itemize}\scriptsize
      \item \cmd{ref}\marg{标签名}
      \item \cmd{pageref}\marg{标签名}
      \item \cmd{eqref}\marg{标签名}（需要 \textsf{amsmath} 宏包）
      \item \cmd{nameref}\marg{标签名}（需要 \textsf{nameref} 宏包）
      \item \cmd{autoref}\marg{标签名} （需要 \textsf{hyperref} 宏包）
      \item \cmd{cref}\marg{标签名}、\cmd{cpageref}\marg{标签名} （需要 \textsf{cleveref} 宏包）
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}{参考文献}
  \begin{itemize}\small
    \item 手写 \texttt{thebibliography} 环境 {\scriptsize（不推荐，你只有三篇参考文献？）}
    \item 数据库读取自动生成
    \begin{itemize}\footnotesize
      \item 老牌王者： BiB\TeX{} 引擎，后端 \fname{bibtex.exe} 编译 
      \item 后起之秀： \textsf{biblatex} 宏包，后端 \fname{biber.exe} 编译 
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}{参考文献}
  \begin{enumerate}\footnotesize
    \item 准备需要的参考文献数据库 \fname{bib}
    \item 设定参考文献样式
    \item 正文中需要引用时使用指令指向 \fname{bib} 中对应条目
    \item 需要列出参考文献的位置使用指令列出所有参考文献
    \item 使用文档编译命令和参考文献编译命令多遍编译文档，再次推荐 \fname{latexmk}
  \end{enumerate}
\end{frame}

\begin{frame}{参考文献—— 参考文献数据库 \fname{bib}}
\begin{lcmdline}
@\Arg{type}\{\Arg{citationkey},\\
\hspace*{2em}\Arg{key1}=\marg{value1},\\
\hspace*{2em}\Arg{key2}=\marg{value2},\\
\hspace*{2em}\ldots\\
\}
\end{lcmdline}
\begin{itemize}\scriptsize
  \item \Arg{type} 文献类别，大小写不敏感。\texttt{article}、\texttt{book}、\texttt{PhdThesis}、\texttt{MasterThesis}、\texttt{InProceedings}、\texttt{standard}
  \item \Arg{citationkey} 文献 ID，字符与数字组成的字符串，整个 \fname{bib} 中必须唯一，不可带空格，流行方式是\texttt{作者-年份-篇名首词}
  \item \Arg{key}=\marg{value}，文献的关键字段，如 \texttt{title}、\texttt{author}、\texttt{school}、\texttt{journal}、\texttt{volume}、\texttt{number}、\texttt{publisher}、\texttt{pages}
  \item 参考文献条目不用手写，从 Google Scholar、Bing Scholar、多数科研文献数据库网站都可以直接抓取，开源软件 Jabref \href{https://www.jabref.org/}{\faLink} 甚至可以根据 \texttt{DOI} 和 \texttt{ISBN} 直接抓取。
\end{itemize}
\end{frame}

\begin{frame}[t]{参考文献——参考文献样式}
  \begin{lcmdline}
    \cmd{bibliographystyle}\marg{bstname}\\
    \cmd{uspackage}\oarg*{backend=biber,style=\Arg{style}}\marg*{biblatex}
  \end{lcmdline}
  \begin{itemize}\footnotesize
    \item 控制参考文献列表表现样式
    \item 使用 BiB\TeX 
    \begin{itemize}\scriptsize
      \item \Arg{bstname} 对应系统中 \fname{bst} 的文件名
      \item \fname{bst} 语法用了\alert{逆波兰表达式}，非常难懂，不建议修改和自定义
      \item \cmd{usepackage}\marg*{gbt7714}，提供了 \fname{gbt7714-numerical.bst} 文件和 \fname{gbt7714-author-year.bst}文件
    \end{itemize}
    \item 使用 \textsf{biblatex} 宏包
    \begin{itemize}\scriptsize
      \item \Arg{style} 对应系统中 \fname{bbx} 和 \fname{cbx} 的文件名 
      \item \fname{bbx} （列表样式）和 \fname{cbx} （引用样式）语法接近于 \LaTeX{}，自定义相对容易
      \item \oarg*{style=gb7714-2015} 或 \oarg*{style=gb7714-2015ay}
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]{参考文献——参考文献引用}
\tiny
\begin{columns}
\column{0.5\linewidth}
\hrule
\begin{latexcode}
\documentclass{ctexart}
\usepackage[sort&compress]{gbt7714}
\bibliographystyle{gbt7714-numerical}
\begin{document}
\section{概述}
文献\cite{Priestley1996Seismic} 提出……
\section{结论}
本文……从而得出以下结论：

……
\bibliography{myref}
\end{document}
\end{latexcode}
\hrule
\column{0.5\linewidth}
\hrule
\begin{latexcode}
\documentclass{ctexart}
\usepackage[backend=biber,style=gb7714-2015,natbib=true]{biblatex}
\addbibresource{myref.bib}
\begin{document}
\section{概述}
文献\cite{Priestley1996Seismic} 提出……
\section{结论}
本文……从而得出以下结论：

……
\printbibliography
\end{document}
\end{latexcode}
\hrule
\end{columns}
{\scriptsize 示例文件 \href{demo/part1/exp-ref.tex}{\faLink}}
\end{frame}

\begin{frame}{其他自动工具}
  \begin{itemize}
    \item 索引
    \item 词汇表
    \item \ldots
  \end{itemize}
\end{frame}

\begin{frame}[standout]
  接下来可以总结一下 \LaTeX{} 的优缺点了。
\end{frame}

\begin{frame}[fragile]{\LaTeX 优点}
  \begin{columns}
    \column{0.45\linewidth}
    \begin{itemize}\footnotesize
      \item 高质量
      \item 结构化
      \item 稳定性好
      \begin{itemize}\tiny 
        \item \TeX{} 以稳定著称
        \item 只用编辑器就能把系统弄崩溃的人是大神（自己作死不算）
\begin{commandshell}
format D:
\end{commandshell}
\begin{commandshell}[\$]
sudo rm -rf /*
\end{commandshell}
      \end{itemize}
      \item 跨平台（\faWindows{} \faLinux{} \faApple{}）
      \item 免费{\tiny（是不是想起了 Cinema 4D）}
    \end{itemize}\pause
    \column{0.55\linewidth}
    \begin{itemize}\footnotesize
      \item 协作性好
      \begin{itemize}\tiny
        \item 各写各的内容，最后 \cmd{input} 到一个主文档编译就行了
        \item 即便要在同一个 \fname{tex} 文档内工作，\faGit{} 也能方便地合并
      \end{itemize} 
      \item 可编程，可条件控制
      \begin{itemize}\tiny
        \item 注释符可以控制
        \item 可以控制一个文件在不同章节中被读入时表现出的详细程度
      \end{itemize} 
      \item 批处理{\tiny（十几个相似的文档，把不同点分别用配置文件准备好，用一个模板可以一条编译命令全部排版出来）}
      \item 版本管理{\tiny（彻底告别 \fname{打死也不改了版-修改1.docx} 了）}
    \end{itemize}
  \end{columns}
\end{frame}

\begin{frame}{\LaTeX 缺点}
  \begin{itemize}\footnotesize
    \item 需要反复编译，不能直接或实时看到结果
    \item 太难排查编译错误，有的错误提示很难理解
    \item 排版样式统一，因而缺乏一些灵活性
    \item 命令繁多，\alert{不}存在一本囊括\alert{所有}命令的资料
  \end{itemize}
\end{frame}

\begin{frame}{\LaTeX{} Vs. MS Office}
  \begin{columns}
    \column{0.5\linewidth}
    \begin{tikzpicture}[scale=0.8, every node/.style={scale=0.8}]
      \pgfplotsset{every axis/.append style={line width=1pt}}
      \begin{axis}[%
        axis x line=bottom,
        axis y line=left,
        ymin=0,
        xtick={},
        xticklabels={},
        xlabel near ticks,
        ytick={},
        yticklabels={},
        ylabel near ticks,
        xlabel={文档大小和复杂性},
        ylabel={耗时和难度},
        ]
        \begin{scope}[decoration={random steps,segment length=1pt,amplitude=0.1pt},decorate]
          \addplot [red!70!black, samples=130, domain=0:2] {1+2*x^3}
                    node[near end, sloped, above] {MS Office}
                    node[anchor=east, pos=.98] {\tiny (我不玩了！再见$\cdots$)};
           \addplot [green!70!black, samples=130, domain=0:2] {2+x}
                    node[near end, sloped, above] {\LaTeX};
        \end{scope}
      \end{axis}
    \end{tikzpicture}
    \column{0.5\linewidth}
    \begin{tikzpicture}[scale=0.8, every node/.style={scale=0.8}]
      \pgfplotsset{every axis/.append style={line width=1pt}}
      \begin{axis}[%
        axis x line=bottom,
        axis y line=left,      
        xtick={},
        xticklabels={},
        xlabel near ticks,
        ytick={},
        yticklabels={},
        ylabel near ticks,
        xlabel={需求复杂度/经验},
        ylabel={学习难度},
        ]
        \begin{scope}[decoration={random steps,segment length=1pt,amplitude=0.1pt},decorate]
          \addplot [red!70!black, samples=130, domain=0:2] {0.07*atan(8*x-8)+0.07*atan(8)}
                    node[near end, sloped, above] {MS Office};
          \addplot [green!70!black, samples=130, domain=0:2] {5-0.5/(x+0.1)}
                    node[near end, sloped, above] {\LaTeX};
        \end{scope}
      \end{axis}
    \end{tikzpicture}
  \end{columns}
\end{frame}